package com.wyw.learning.thread.immutable;

/**
 * final 修饰方法
 *  构造方法不允许final修饰
 *  不可被重写，也就是不能被override，同样静态方法不能被重写
 *      final修饰对象的时候，只是对象的引用不可变，而对象本身的属性是可以变化的
 *      final使用原则，可以养成良好的编程习惯
 *
 * final修饰类，类不能被继承，例如String
 *
 * @author Mr Wu    yewen.wu.china@gmail.com
 * <p>
 * Update History:
 * Author        Time            Content
 */
public class FinalMethodDemo {

    public void drink() {}

    public final void eat() {}

    public static void sleep() {}
}

class SubClass extends FinalMethodDemo {
    @Override
    public void drink() {
        super.drink();
        eat();//可以调用
    }

    //这里可以看出来，eat不能被重写
//    public final void eat() {}

    //静态方法不能被重写，但是可以写一个同名的方法，这个是子类的静态方法
    public static void sleep() {}
}
